#ifndef OPENCV_IO_IMPL_HPP_INCLUDED
#define OPENCV_IO_IMPL_HPP_INCLUDED

#include "IO/ioimpl.hpp"
#include "config.h"

#include "opencv2/highgui/highgui.hpp"
#include "opencv2/imgproc/imgproc.hpp"
#include <fstream>

using namespace cv;

class OpenCVImpl: public IOImpl
{
public:
	OpenCVImpl();
	~OpenCVImpl(){}
	
	int GetImage(Image& image);
	int GetImageFromImage(Image& image, const string src);
	void Update(const Image& image);
	int WriteImage(const Image& image, const string src);
	
private:	
	Config1* param;
	Mat m_image;
	VideoCapture m_video;
	VideoWriter w_video;
	std::ifstream w_filelist;
};
#endif // OPENCV_IO_IMPL_HPP_INCLUDED
